﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Easyleave.Workflow;
using Easyleave.Logic.Domain;

namespace Easyleave.Service
{
    [ServiceContract]
    public interface ILeaveWorkflowService
    {
        [OperationContract]
        Guid SubmitNewLeaveRequest(Guid? authorId, LeaveDto leave);

        [OperationContract]
        string RecommendLeaveRequest(Guid leaveId, Guid? authorId, string message);

        [OperationContract]
        string ApproveLeaveRequest(Guid leaveId, Guid? authorId, string message);

        [OperationContract]
        string RejectLeaveRequest(Guid leaveId, Guid? authorId, string message);

        [OperationContract]
        IList<LeaveDto> GetLeavesSubmittedByMe(Guid? userId);

        [OperationContract]
        IList<LeaveDto> GetLeavesToBeRecommendedByMe(Guid? userId);

        [OperationContract]
        IList<LeaveDto> GetLeavesToBeApprovedByMe(Guid? userId);
    }
}
